/**
  ******************************************************************************
  * @file    Mux_control.c
  * @author  Dynapack ADT, Hsinmo
  * @version V1.0.0
  * @date    3-April-2013
  * @brief   Mux_control setting
  ******************************************************************************
  * @attention
  *
  * DESCRIPTION....
  *
  * <h2><center>&copy; COPYRIGHT 2013 Dynapack</center></h2>
  ******************************************************************************
  */

//==============================================================================
// Includes
//==============================================================================
#include "inc/hw_memmap.h"

#include "gpio.h"
//#include "ucs.h"
#include "MCU_Devices.h"
//==============================================================================
// Global/Extern variables
//==============================================================================
//==============================================================================
// Extern functions
//==============================================================================
//==============================================================================
// Private typedef
//==============================================================================
//==============================================================================
// Private define
//==============================================================================

#define MUX_PORT               GPIO_PORT_P4
#define MUX_A0_PIN                GPIO_PIN3
#define MUX_A1_PIN                GPIO_PIN7

//==============================================================================
// Private macro
//==============================================================================
//==============================================================================
// Private Enum
//==============================================================================

//==============================================================================
// Private variables
//==============================================================================

//==============================================================================
// Private function prototypes
//==============================================================================

//==============================================================================
// Private functions
//==============================================================================

void  _Device_MUX_Init(void){


    //set as  output  pins
    GPIO_setAsOutputPin(MUX_PORT,MUX_A0_PIN);
    GPIO_setAsOutputPin(MUX_PORT,MUX_A1_PIN);
    GPIO_setOutputLowOnPin( MUX_PORT, MUX_A0_PIN );
    GPIO_setOutputLowOnPin( MUX_PORT, MUX_A1_PIN );
}

void _Device_Set_Mux_Channel(t_uint8 channel){

    switch(channel){
        case Mux_Channel1:
            GPIO_setOutputLowOnPin( MUX_PORT, MUX_A0_PIN );
            GPIO_setOutputLowOnPin( MUX_PORT, MUX_A1_PIN );
            break;
        case Mux_Channel2:
            GPIO_setOutputHighOnPin( MUX_PORT, MUX_A0_PIN );
            GPIO_setOutputLowOnPin( MUX_PORT, MUX_A1_PIN );
            break;
        case Mux_Channel3:
            GPIO_setOutputLowOnPin( MUX_PORT, MUX_A0_PIN );
            GPIO_setOutputHighOnPin( MUX_PORT, MUX_A1_PIN );
            break;
        case Mux_Channel4:
            GPIO_setOutputHighOnPin( MUX_PORT, MUX_A0_PIN );
            GPIO_setOutputHighOnPin( MUX_PORT, MUX_A1_PIN );
            break;
        default:
            GPIO_setOutputLowOnPin( MUX_PORT, MUX_A0_PIN );
            GPIO_setOutputLowOnPin( MUX_PORT, MUX_A1_PIN );
            break;
    }
}



